Chrome 138 beta

Data publikacji: 28 maja 2025 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji Chrome w kanale beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o wymienionych tu funkcjach znajdziesz, klikając odpowiednie linki lub na stronie ChromeStatus.com. Od 28 maja 2025 r. Chrome 138 jest w wersji beta. Najnowszą wersję możesz pobrać na Google.com na komputerze lub w Sklepie Google Play na urządzeniu z Androidem.

CSS i UI

Ta wersja zawiera 6 nowych funkcji CSS i interfejsu użytkownika.

CSS stretch rozmiar kluczowego słowa

Słowo kluczowe dla właściwości rozmiaru CSS (np. widthheight), które pozwala elementom mieścić się dokładnie w dostępnej przestrzeni bloku. Jest to podobne do 100%, z tą różnicą, że wynikowy rozmiar jest stosowany do pola marginesu elementu zamiast pola wskazanego przez box-sizing. Użycie tego słowa kluczowego pozwala elementowi zachować marże, a jednocześnie zachować możliwie jak największy rozmiar.

Funkcje związane ze znakiem abs()sign() obliczają różne funkcje związane ze znakiem ich argumentu.

zmienna środowiska CSS dla skali czcionki na poziomie systemu operacyjnego;

Udostępnia preferowaną przez użytkownika skalę czcionki do CSS. Obecnie nie jest praktyczne, aby strona wykrywała, czy użytkownik zmienił preferowany rozmiar czcionki w ustawieniach systemu operacyjnego. Ta zmienna środowiska usługi porównywania cen będzie odzwierciedlać skalę wybraną przez użytkownika.

CSS sibling-index() i sibling-count()

Funkcji sibling-index()sibling-count() można używać jako liczb całkowitych w wartościach właściwości CSS, aby nadać styl elementom na podstawie ich pozycji wśród elementów siostrzanych lub ich łącznej liczby. Tych funkcji można używać bezpośrednio jako wartości całkowitych, ale ciekawiej jest stosować je w wyrażeniach calc().

li {
  animation-delay: calc(0.1s * sibling-index());
}

Notacja funkcyjna postępu interpolacji: funkcja CSS progress()

Notacja funkcyjna progress() to funkcja matematyczna, która zwraca wartość <number> reprezentującą pozycję jednego obliczenia (wartość postępu) między dwoma innymi obliczeniami (wartość początkowa postępu i wartość końcowa postępu).

Enumeration API segmentów widoku

Interfejs Viewport Segments API umożliwia programistom dostosowanie układu strony internetowej do urządzeń składanych. Segmenty widocznego obszaru określają położenie i wymiary logicznie oddzielnego regionu widocznego obszaru. Segmenty widoku są tworzone, gdy widok jest podzielony przez co najmniej 1 funkcję sprzętową (np. zawias między oddzielnymi wyświetlaczami), która działa jako podział. Segmenty to obszary widoku, które mogą być traktowane przez dewelopera jako logicznie odrębne.

Interfejsy Web API

Dodawanie obsługi metadanych orientacji klatki wideo do WebCodecs

Wprowadza wartości rotation: intflip: bool do różnych interfejsów związanych z wideo w WebCodecs, aby deweloperzy mogli pracować ze źródłami klatek o określonej orientacji (np. z kamerami na Androidzie i pewnymi mediami). Interfejs VideoFrame umożliwia tworzenie ramek wideo z dowolnym przekręceniem i obróceniem, a także dostęp do tych informacji w obiekcie VideoFrame. Obiekt VideoDecoderConfig zyskuje pola rotation i flip, które są automatycznie emitowane w rozszyfrowanych obiektach VideoFrame. Klasa VideoEncoder zyskuje mechanizmy przekazywania informacji o obrocie i odwróceniu z encode() do VideoDecoderConfig emitowanego w ramach EncodedVideoChunkMetadata. Jeśli funkcja encode() zostanie wywołana z ramkami o innej orientacji, zostanie zgłoszony błąd niekrytyczny. Metody configure() można użyć do zresetowania dozwolonej orientacji.

Interfejs API raportów o awariach: is_top_levelvisibility_state

Ta funkcja dodaje do treści interfejsu API do raportowania o awariach pola ciągu znaków is_top_levelvisibility_state, które są wysyłane do domyślnego punktu końcowego raportowania w przypadku raportów o awariach.

Umieszczanie znaku ucieczki przed < i > w atrybutach podczas serializacji

Użyj znaku ucieczki < i > w wartościach atrybutów podczas serializacji. Dzięki temu zmniejsza się ryzyko ataków XSS polegających na mutacji, które występują, gdy wartość atrybutu jest interpretowana jako token znacznika początkowego po zserializowaniu i ponownym przeanalizowaniu.

Zasady integralności dotyczące skryptów

Integrowność zasobów podrzędnych (SRI) umożliwia deweloperom sprawdzenie, czy wczytywane zasoby są rzeczywiście tymi, które mają być wczytywane. Obecnie programiści nie mają jednak możliwości sprawdzenia, czy wszystkie ich skrypty są weryfikowane za pomocą SRI. Nagłówek Integrity-Policy umożliwia deweloperom określenie, że każda pula zasobów danego typu musi zostać sprawdzona pod kątem integralności. Jeśli spróbujesz załadować zasób tego typu bez metadanych dotyczących integralności, próba się nie powiedzie i spowoduje wysłanie raportu o naruszeniu zasad.

przewidywalny limit miejsca na dane,

Przesyłaj przewidywany limit miejsca na dane z interfejsu Estimate API usługi StorageManager w przypadku witryn, które nie mają nieograniczonych uprawnień do miejsca na dane. Tryb przeglądania użytkownika można wykryć na podstawie zgłoszonego limitu miejsca na dane, ponieważ w trybie incognito dostępne miejsce na dane jest znacznie mniejsze niż w zwykłym trybie.

Jest to środek zapobiegający wykrywaniu trybu przeglądania użytkownika za pomocą interfejsu Storage API. Polega on na zgłaszaniu sztucznej kwoty równej użyciu + min(10 GB, dysk zaokrąglony w górę do 1 GB) we wszystkich trybach przeglądania w przypadku witryn z ograniczonymi uprawnieniami do przechowywania. Witryny z nieograniczonym miejscem na dane nie zostaną w żaden sposób dotknięte. Nie wpłynie to również na limity narzucone przez Google.

zdarzenie pushsubscriptionchange po ponownym subskrybowaniu usługi.

Wywołaj zdarzenie pushsubscriptionchange w usługach działających w tle, gdy źródło, dla którego wcześniej istniała subskrypcja push, ale zostało odstąpiono od niej z powodu zmiany uprawnień (z przyznanych na odrzucone/domyślne), ponownie przyzna uprawnienia do wysyłania powiadomień. Zdarzenie zostanie wywołane z pustymi wartościami oldSubscriptionnewSubscription.

Reguły spekulacyjne: do nagłówka Clear-Site-Data dodaj elementy prefetchCache i prerenderCache

2 nowe wartości nagłówka Clear-Site-Data, które pomagają deweloperom kierować czyszczenie pamięci podręcznej z wstępnym renderowaniem i wstępnym pobieraniem: prefetchCacheprerenderCache. Można je wysyłać w ramach dowolnych żądań i nie muszą być związane z żądaniem dokumentu (mogą na przykład być zwracane w odpowiedziach na wywołania interfejsu API dotyczące dodawania do koszyka lub logowania i wylogowywania, aby wyeliminować spekulacje na temat zmiany stanu).

Reguły spekulacyjne: pole target_hint

Rozszerza ona składnię reguł spekulacyjnych, aby umożliwić deweloperom określenie pola target_hint. To pole zawiera podpowiedź wskazującą docelową stronę, na której wstępnie wyrenderowana strona zostanie aktywowana. Jeśli jako podpowiedź podano wartość _blank, można aktywować wstępnie wyrenderowaną stronę, aby można było ją otworzyć i przemieszczać się po niej za pomocą window.open(). Pole nie jest obsługiwane w przypadku wstępnego pobierania.

Zasady dotyczące Storage Access API dotyczące ścisłego pochodzenia

Dostosowuje semantykę interfejsu Storage Access API, aby ściśle przestrzegać zasad dotyczących zabezpieczeń w ramach zasady „Same Origin”. Oznacza to, że użycie w ramce tagu document.requestStorageAccess() powoduje dołączanie plików cookie tylko do żądań wysyłanych do źródła elementu iframe (a nie do witryny) domyślnie.

Summarizer API

Interfejs JavaScript API do generowania podsumowań tekstu wejściowego na podstawie modelu językowego AI. Coraz częściej oczekuje się, że przeglądarki i systemy operacyjne będą miały dostęp do modelu językowego. Dzięki temu, że udostępniamy ten wbudowany model, każda witryna nie musi pobierać własnego wielogigabajtowego modelu językowego ani wysyłać tekstu wejściowego do interfejsów API innych firm. W szczególności interfejs summarizer API udostępnia interfejs API wysokiego poziomu do interakcji z modelem językowym w celu podsumowywania danych wejściowych w różnych przypadkach użycia w sposób niezależny od konkretnego modelu językowego. Dostępna jest zasada dotycząca organizacji (GenAILocalFoundationalModelSettings), która umożliwia wyłączenie pobierania modelu, co spowoduje niedostępność tego interfejsu API.

Dowiedz się więcej o generowaniu zwięzłych podsumowań za pomocą wbudowanej AI.

Language Detector API

Interfejs JavaScript API do wykrywania języka użytego w danym tekście wraz z poziomami ufności. Jest to ważne uzupełnienie funkcji wykrywania języka w tłumaczeniu i może być używane w połączeniu z interfejsem Translator API. Na przykład możesz przetwarzać dane wejściowe użytkownika w nieznanym języku, określić ten język, a następnie przetłumaczyć je na wybrany język docelowy. Chociaż przeglądarki często mają już funkcje wykrywania języka, interfejs JavaScript API oferuje deweloperom webowym te same możliwości, uzupełniając interfejs API tłumaczenia.

Dostępna jest zasada przedsiębiorstwa (GenAILocalFoundationalModelSettings), która umożliwia wyłączenie pobierania modelu podstawowego, co spowoduje niedostępność tego interfejsu API.

Więcej informacji znajdziesz w artykule Wykrywanie języka za pomocą wbudowanej AI.

Translator API

Interfejs JavaScript API umożliwiający tłumaczenie stron internetowych. Chociaż przeglądarki coraz częściej oferują tłumaczenie języków użytkownikom, takie funkcje tłumaczenia mogą być też przydatne dla programistów stron internetowych. Jest to szczególnie przydatne, gdy wbudowane funkcje tłumaczenia w przeglądarce nie są wystarczające, na przykład w przypadku usług na żywo i interaktywnych. Dostępna jest zasada firmy (GenAILocalFoundationalModelSettings), która umożliwia wyłączenie pobierania modelu, co spowoduje niedostępność tego interfejsu API.

Więcej informacji znajdziesz w artykule Tłumaczenie z wbudowaną AI.

Rozszerzenia zakresu aplikacji internetowych

Dodaje pole "scope_extensions" w pliku manifestu aplikacji internetowej, które umożliwia rozszerzenie zakresu aplikacji internetowej na inne źródła. Dzięki temu witryny, które zarządzają wieloma subdomenami i domenami najwyższego poziomu, mogą być wyświetlane jako pojedyncza aplikacja internetowa. Wymaga to potwierdzenia powiązania z aplikacją internetową za pomocą pliku konfiguracji .well-known/web-app-origin-association.

Web serial przez Bluetooth na Androidzie

Ta funkcja umożliwia stronom internetowym i aplikacjom internetowym łączenie się z portami szeregowymi przez Bluetooth na urządzeniach z Androidem. Chrome na Androidzie obsługuje teraz interfejs Web Serial API przez Bluetooth RFCOMM. Istniejące zasady dla firm (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls i SerialBlockedForUrls) na innych platformach są włączone w stanach future_on na Androidzie. Po włączeniu tej funkcji wszystkie zasady (z wyjątkiem SerialAllowUsbDevicesForUrls) będą włączone. SerialAllowUsbDevicesForUrls zostanie włączone w przyszłej wersji, gdy Android będzie obsługiwać przewodowe porty szeregowe na poziomie systemu.

Wycofanie i usunięcie

W tej wersji Chrome wprowadzamy następujące wycofania i usunięcia. Na stronie ChromeStatus.com znajdziesz listy planowanych wycofań, bieżących wycofań i poprzednich usunięciach.

Ta wersja Chrome wycofuje 2 funkcje.

Wycofanie asynchronicznego usuwania zakresu w rozszerzeniach źródła multimediów

Standard Media Source został dawno temu zmieniony, aby uniemożliwić niejednoznacznie zdefiniowane zachowanie dotyczące asynchronicznego usuwania zakresu:

  • SourceBuffer.abort() nie przerywa już operacji SourceBuffer.remove().
  • Ustawienie MediaSource.duration nie może już obcinać obecnie buforowanych multimediów.

W obu tych przypadkach będą stosowane wyjątki.

Usuń zastępcze SwiftShader

Umożliwianie automatycznego uruchamiania WebGL z wykorzystaniem renderowania oprogramowania SwiftShader zostało wycofane. Zamiast uruchamiania SwiftShadera tworzenie kontekstu WebGL zakończy się niepowodzeniem. Zrobiliśmy to z 2 głównych powodów:

  1. SwiftShader stwarza wysokie ryzyko dla bezpieczeństwa ze względu na kod JIT-ed działający w procesie GPU Chromium.
  2. Użytkownicy nie są zadowoleni z przechodzenia z wysokiej wydajności interfejsu WebGL obsługiwanego przez GPU do implementacji obsługiwanej przez procesor. Użytkownicy nie mają kontroli nad tym zachowaniem, a raporty o błędach trudno opisać.

W okresie wycofywania w konsoli Narzędzi deweloperskich w Chrome będzie wyświetlane ostrzeżenie, gdy zostanie utworzone i obsługiwane przez SwiftShader środowisko WebGL. Podanie wartości --enable-unsafe-swiftshader spowoduje usunięcie tej wiadomości.